package com.sunny.fetch.pojo;

import java.util.ArrayList;
import java.util.List;

public class FCnMExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FCnMExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTidIsNull() {
            addCriterion("tid is null");
            return (Criteria) this;
        }

        public Criteria andTidIsNotNull() {
            addCriterion("tid is not null");
            return (Criteria) this;
        }

        public Criteria andTidEqualTo(Long value) {
            addCriterion("tid =", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotEqualTo(Long value) {
            addCriterion("tid <>", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThan(Long value) {
            addCriterion("tid >", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThanOrEqualTo(Long value) {
            addCriterion("tid >=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThan(Long value) {
            addCriterion("tid <", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThanOrEqualTo(Long value) {
            addCriterion("tid <=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidIn(List<Long> values) {
            addCriterion("tid in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotIn(List<Long> values) {
            addCriterion("tid not in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidBetween(Long value1, Long value2) {
            addCriterion("tid between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotBetween(Long value1, Long value2) {
            addCriterion("tid not between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andMonthIsNull() {
            addCriterion("month is null");
            return (Criteria) this;
        }

        public Criteria andMonthIsNotNull() {
            addCriterion("month is not null");
            return (Criteria) this;
        }

        public Criteria andMonthEqualTo(String value) {
            addCriterion("month =", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotEqualTo(String value) {
            addCriterion("month <>", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthGreaterThan(String value) {
            addCriterion("month >", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthGreaterThanOrEqualTo(String value) {
            addCriterion("month >=", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLessThan(String value) {
            addCriterion("month <", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLessThanOrEqualTo(String value) {
            addCriterion("month <=", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLike(String value) {
            addCriterion("month like", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotLike(String value) {
            addCriterion("month not like", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthIn(List<String> values) {
            addCriterion("month in", values, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotIn(List<String> values) {
            addCriterion("month not in", values, "month");
            return (Criteria) this;
        }

        public Criteria andMonthBetween(String value1, String value2) {
            addCriterion("month between", value1, value2, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotBetween(String value1, String value2) {
            addCriterion("month not between", value1, value2, "month");
            return (Criteria) this;
        }

        public Criteria andM0IsNull() {
            addCriterion("m0 is null");
            return (Criteria) this;
        }

        public Criteria andM0IsNotNull() {
            addCriterion("m0 is not null");
            return (Criteria) this;
        }

        public Criteria andM0EqualTo(Float value) {
            addCriterion("m0 =", value, "m0");
            return (Criteria) this;
        }

        public Criteria andM0NotEqualTo(Float value) {
            addCriterion("m0 <>", value, "m0");
            return (Criteria) this;
        }

        public Criteria andM0GreaterThan(Float value) {
            addCriterion("m0 >", value, "m0");
            return (Criteria) this;
        }

        public Criteria andM0GreaterThanOrEqualTo(Float value) {
            addCriterion("m0 >=", value, "m0");
            return (Criteria) this;
        }

        public Criteria andM0LessThan(Float value) {
            addCriterion("m0 <", value, "m0");
            return (Criteria) this;
        }

        public Criteria andM0LessThanOrEqualTo(Float value) {
            addCriterion("m0 <=", value, "m0");
            return (Criteria) this;
        }

        public Criteria andM0In(List<Float> values) {
            addCriterion("m0 in", values, "m0");
            return (Criteria) this;
        }

        public Criteria andM0NotIn(List<Float> values) {
            addCriterion("m0 not in", values, "m0");
            return (Criteria) this;
        }

        public Criteria andM0Between(Float value1, Float value2) {
            addCriterion("m0 between", value1, value2, "m0");
            return (Criteria) this;
        }

        public Criteria andM0NotBetween(Float value1, Float value2) {
            addCriterion("m0 not between", value1, value2, "m0");
            return (Criteria) this;
        }

        public Criteria andM0YoyIsNull() {
            addCriterion("m0_yoy is null");
            return (Criteria) this;
        }

        public Criteria andM0YoyIsNotNull() {
            addCriterion("m0_yoy is not null");
            return (Criteria) this;
        }

        public Criteria andM0YoyEqualTo(Float value) {
            addCriterion("m0_yoy =", value, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyNotEqualTo(Float value) {
            addCriterion("m0_yoy <>", value, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyGreaterThan(Float value) {
            addCriterion("m0_yoy >", value, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyGreaterThanOrEqualTo(Float value) {
            addCriterion("m0_yoy >=", value, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyLessThan(Float value) {
            addCriterion("m0_yoy <", value, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyLessThanOrEqualTo(Float value) {
            addCriterion("m0_yoy <=", value, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyIn(List<Float> values) {
            addCriterion("m0_yoy in", values, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyNotIn(List<Float> values) {
            addCriterion("m0_yoy not in", values, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyBetween(Float value1, Float value2) {
            addCriterion("m0_yoy between", value1, value2, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0YoyNotBetween(Float value1, Float value2) {
            addCriterion("m0_yoy not between", value1, value2, "m0Yoy");
            return (Criteria) this;
        }

        public Criteria andM0MomIsNull() {
            addCriterion("m0_mom is null");
            return (Criteria) this;
        }

        public Criteria andM0MomIsNotNull() {
            addCriterion("m0_mom is not null");
            return (Criteria) this;
        }

        public Criteria andM0MomEqualTo(Float value) {
            addCriterion("m0_mom =", value, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomNotEqualTo(Float value) {
            addCriterion("m0_mom <>", value, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomGreaterThan(Float value) {
            addCriterion("m0_mom >", value, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomGreaterThanOrEqualTo(Float value) {
            addCriterion("m0_mom >=", value, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomLessThan(Float value) {
            addCriterion("m0_mom <", value, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomLessThanOrEqualTo(Float value) {
            addCriterion("m0_mom <=", value, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomIn(List<Float> values) {
            addCriterion("m0_mom in", values, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomNotIn(List<Float> values) {
            addCriterion("m0_mom not in", values, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomBetween(Float value1, Float value2) {
            addCriterion("m0_mom between", value1, value2, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM0MomNotBetween(Float value1, Float value2) {
            addCriterion("m0_mom not between", value1, value2, "m0Mom");
            return (Criteria) this;
        }

        public Criteria andM1IsNull() {
            addCriterion("m1 is null");
            return (Criteria) this;
        }

        public Criteria andM1IsNotNull() {
            addCriterion("m1 is not null");
            return (Criteria) this;
        }

        public Criteria andM1EqualTo(Float value) {
            addCriterion("m1 =", value, "m1");
            return (Criteria) this;
        }

        public Criteria andM1NotEqualTo(Float value) {
            addCriterion("m1 <>", value, "m1");
            return (Criteria) this;
        }

        public Criteria andM1GreaterThan(Float value) {
            addCriterion("m1 >", value, "m1");
            return (Criteria) this;
        }

        public Criteria andM1GreaterThanOrEqualTo(Float value) {
            addCriterion("m1 >=", value, "m1");
            return (Criteria) this;
        }

        public Criteria andM1LessThan(Float value) {
            addCriterion("m1 <", value, "m1");
            return (Criteria) this;
        }

        public Criteria andM1LessThanOrEqualTo(Float value) {
            addCriterion("m1 <=", value, "m1");
            return (Criteria) this;
        }

        public Criteria andM1In(List<Float> values) {
            addCriterion("m1 in", values, "m1");
            return (Criteria) this;
        }

        public Criteria andM1NotIn(List<Float> values) {
            addCriterion("m1 not in", values, "m1");
            return (Criteria) this;
        }

        public Criteria andM1Between(Float value1, Float value2) {
            addCriterion("m1 between", value1, value2, "m1");
            return (Criteria) this;
        }

        public Criteria andM1NotBetween(Float value1, Float value2) {
            addCriterion("m1 not between", value1, value2, "m1");
            return (Criteria) this;
        }

        public Criteria andM1YoyIsNull() {
            addCriterion("m1_yoy is null");
            return (Criteria) this;
        }

        public Criteria andM1YoyIsNotNull() {
            addCriterion("m1_yoy is not null");
            return (Criteria) this;
        }

        public Criteria andM1YoyEqualTo(Float value) {
            addCriterion("m1_yoy =", value, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyNotEqualTo(Float value) {
            addCriterion("m1_yoy <>", value, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyGreaterThan(Float value) {
            addCriterion("m1_yoy >", value, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyGreaterThanOrEqualTo(Float value) {
            addCriterion("m1_yoy >=", value, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyLessThan(Float value) {
            addCriterion("m1_yoy <", value, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyLessThanOrEqualTo(Float value) {
            addCriterion("m1_yoy <=", value, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyIn(List<Float> values) {
            addCriterion("m1_yoy in", values, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyNotIn(List<Float> values) {
            addCriterion("m1_yoy not in", values, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyBetween(Float value1, Float value2) {
            addCriterion("m1_yoy between", value1, value2, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1YoyNotBetween(Float value1, Float value2) {
            addCriterion("m1_yoy not between", value1, value2, "m1Yoy");
            return (Criteria) this;
        }

        public Criteria andM1MomIsNull() {
            addCriterion("m1_mom is null");
            return (Criteria) this;
        }

        public Criteria andM1MomIsNotNull() {
            addCriterion("m1_mom is not null");
            return (Criteria) this;
        }

        public Criteria andM1MomEqualTo(Float value) {
            addCriterion("m1_mom =", value, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomNotEqualTo(Float value) {
            addCriterion("m1_mom <>", value, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomGreaterThan(Float value) {
            addCriterion("m1_mom >", value, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomGreaterThanOrEqualTo(Float value) {
            addCriterion("m1_mom >=", value, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomLessThan(Float value) {
            addCriterion("m1_mom <", value, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomLessThanOrEqualTo(Float value) {
            addCriterion("m1_mom <=", value, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomIn(List<Float> values) {
            addCriterion("m1_mom in", values, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomNotIn(List<Float> values) {
            addCriterion("m1_mom not in", values, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomBetween(Float value1, Float value2) {
            addCriterion("m1_mom between", value1, value2, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM1MomNotBetween(Float value1, Float value2) {
            addCriterion("m1_mom not between", value1, value2, "m1Mom");
            return (Criteria) this;
        }

        public Criteria andM2IsNull() {
            addCriterion("m2 is null");
            return (Criteria) this;
        }

        public Criteria andM2IsNotNull() {
            addCriterion("m2 is not null");
            return (Criteria) this;
        }

        public Criteria andM2EqualTo(Float value) {
            addCriterion("m2 =", value, "m2");
            return (Criteria) this;
        }

        public Criteria andM2NotEqualTo(Float value) {
            addCriterion("m2 <>", value, "m2");
            return (Criteria) this;
        }

        public Criteria andM2GreaterThan(Float value) {
            addCriterion("m2 >", value, "m2");
            return (Criteria) this;
        }

        public Criteria andM2GreaterThanOrEqualTo(Float value) {
            addCriterion("m2 >=", value, "m2");
            return (Criteria) this;
        }

        public Criteria andM2LessThan(Float value) {
            addCriterion("m2 <", value, "m2");
            return (Criteria) this;
        }

        public Criteria andM2LessThanOrEqualTo(Float value) {
            addCriterion("m2 <=", value, "m2");
            return (Criteria) this;
        }

        public Criteria andM2In(List<Float> values) {
            addCriterion("m2 in", values, "m2");
            return (Criteria) this;
        }

        public Criteria andM2NotIn(List<Float> values) {
            addCriterion("m2 not in", values, "m2");
            return (Criteria) this;
        }

        public Criteria andM2Between(Float value1, Float value2) {
            addCriterion("m2 between", value1, value2, "m2");
            return (Criteria) this;
        }

        public Criteria andM2NotBetween(Float value1, Float value2) {
            addCriterion("m2 not between", value1, value2, "m2");
            return (Criteria) this;
        }

        public Criteria andM2YoyIsNull() {
            addCriterion("m2_yoy is null");
            return (Criteria) this;
        }

        public Criteria andM2YoyIsNotNull() {
            addCriterion("m2_yoy is not null");
            return (Criteria) this;
        }

        public Criteria andM2YoyEqualTo(Float value) {
            addCriterion("m2_yoy =", value, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyNotEqualTo(Float value) {
            addCriterion("m2_yoy <>", value, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyGreaterThan(Float value) {
            addCriterion("m2_yoy >", value, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyGreaterThanOrEqualTo(Float value) {
            addCriterion("m2_yoy >=", value, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyLessThan(Float value) {
            addCriterion("m2_yoy <", value, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyLessThanOrEqualTo(Float value) {
            addCriterion("m2_yoy <=", value, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyIn(List<Float> values) {
            addCriterion("m2_yoy in", values, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyNotIn(List<Float> values) {
            addCriterion("m2_yoy not in", values, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyBetween(Float value1, Float value2) {
            addCriterion("m2_yoy between", value1, value2, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2YoyNotBetween(Float value1, Float value2) {
            addCriterion("m2_yoy not between", value1, value2, "m2Yoy");
            return (Criteria) this;
        }

        public Criteria andM2MomIsNull() {
            addCriterion("m2_mom is null");
            return (Criteria) this;
        }

        public Criteria andM2MomIsNotNull() {
            addCriterion("m2_mom is not null");
            return (Criteria) this;
        }

        public Criteria andM2MomEqualTo(Float value) {
            addCriterion("m2_mom =", value, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomNotEqualTo(Float value) {
            addCriterion("m2_mom <>", value, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomGreaterThan(Float value) {
            addCriterion("m2_mom >", value, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomGreaterThanOrEqualTo(Float value) {
            addCriterion("m2_mom >=", value, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomLessThan(Float value) {
            addCriterion("m2_mom <", value, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomLessThanOrEqualTo(Float value) {
            addCriterion("m2_mom <=", value, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomIn(List<Float> values) {
            addCriterion("m2_mom in", values, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomNotIn(List<Float> values) {
            addCriterion("m2_mom not in", values, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomBetween(Float value1, Float value2) {
            addCriterion("m2_mom between", value1, value2, "m2Mom");
            return (Criteria) this;
        }

        public Criteria andM2MomNotBetween(Float value1, Float value2) {
            addCriterion("m2_mom not between", value1, value2, "m2Mom");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}